/**
 * @filename:MilvusConfigService 2025-04-15
 * @project starhub-schema  V1.0
 */
package com.starhub.application.rag.service;

import com.starhub.common.bean.model.MilvusConfig;
import com.starhub.common.sys.user.LoginUser;

import java.util.List;
import java.util.Map;
/**
 * @Description:(向量库配置服务层)
 * @version: V1.0
 * @author: luosw
 * 
 */
public interface MilvusConfigService {

    /**
    * 新增
    * @param user
    * @param milvus
    * @return
    */
    Long add(LoginUser user, MilvusConfig milvus);

    /**
    * 更新
    * @param user
    * @param milvus
    * @return
    */
    MilvusConfig update(LoginUser user, MilvusConfig milvus);

    /**
    * 基本信息获取
    * @param user
    * @param id
    * @return
    */
    MilvusConfig getInfo(LoginUser user, Long id);

    /**
    * 根据mark获取配置信息
    * @param mark 标记
    * @return Milvus配置信息
    */
    MilvusConfig getConfigByMark(String mark);

    /**
    * (批量)删除，同时支持单条或者批量,此方法为逻辑删除
    * @param user
    * @param ids
    */
    void deleteByType(LoginUser user, String ids, int deleteType);

   /**
   * 根据id删除，此方法为真实删除
   * @param user
   * @param ids
   */
    void deleteRecord(LoginUser user, String ids);

    /**
    * 列表查询
    * @param user
    * @param params
    */
    List<MilvusConfig> getList(LoginUser user, Map<String , Object> params);

    /**
    * 获取所有配置
    * @return 配置列表
    */
    List<MilvusConfig> getAllConfigs();
}
